<?php
/*
 * [JINYUN!] (C)2001-2099 Jinyunweb.com
 * This is NOT a freeware, use is subject to license terms
 * $Id: 2017-12-13 03:39:35 apple $
*/
defined('BY_JYA') or exit('error');
$_RQ['op']=$_RQ['op']?$_RQ['op']:'list';
$return=array();
if($_RQ['op']=='list'){
	$params=array();
	if($_RQ['plugin_name'] && $_RQ['plugin_name']!='core'){
		$_SESSION['plugin_name']=$_RQ['plugin_name'];
	}
	if($_RQ['plugin_name']=='core'){
		$_SESSION['plugin_name']='';
	}
	if($_SESSION['plugin_name']){
		$params['plugin_name']=$_SESSION['plugin_name'];
	}
	if($_RQ['title']){
		$params['title like']='%'.$_RQ['title'].'%';
		$return['params']['title']=$_RQ['title'];
	}
	if($_RQ['name']){
		$params['name']=$_RQ['name'];
		$return['params']['name']=$_RQ['name'];
	}
	if($_RQ['template_name']){
		$params['template_name']=$_RQ['template_name'];
		$return['params']['template_name']=$_RQ['template_name'];
	}
	$pindex = max(1, intval($_RQ['page']));
	$psize = $_RQ['psize']?:10;
	$total='';
	$list=pdo_getslice('core_tpl_template',$params,array($pindex,$psize),$total,$fields,'','id desc');
	if($list){
		foreach($list as &$row){
			$row['plugintitle']=pdo_getcolumn('core_plugins',array('name'=>$row['plugin_name']),'title');
			$row['template_id']=pdo_getcolumn('core_account_tpl_template',array('uniacid'=>$_SESSION['uniacid'],'template_name'=>$row['template_name'],'name'=>$row['name'],'plugin_name'=>$row['plugin_name']),'template_id');
			if($row['keyword_name_list']){
				$row['canup']=1;
			}
		}
	}
	$return['list']=$list;
	$htmls=array(
		'type'=>'list',
		'tabs'=>array(
			array('op'=>'list','title'=>'系统模板消息'),
			array('op'=>'mylist','title'=>'自定义模板消息'),
			array('op'=>'help','title'=>'绑定自定义模板ID教程'),
		),
		'list'=>array('tip'=>'[温馨提示]：</br>1、每个微信公众号只能<red>添加25个</red>模板，请先检查自己微信公众号模板数是否满了（移步微信公众号官方后台--模板消息，查看），如果满了可能<em>影响新模板消息</em>的推送！
		</br>2、小程序模板消息，是订阅的，每次下单后，会弹窗授权窗口，而且一次只能订阅3条。所以小程序模板消息很多时候无法触发（比如除：支付，发货，确认之外的模板消息都无法触发）；更不会发送订阅消息给管理员/卖家等。因为订阅消息需要点击按钮或者触发支付等行为才会弹窗授权。
		</br>3、小程序行业类目必须包含：生活服务 > 百货/超市/便利店，IT行业和餐饮行业（因为默认订阅消息模板是属于这三个行业的）
		</br>4、行业类目分类不匹配的情况下，就不能自动创建模板消息，只能通过下面《自定义模板》来添加绑定公众号模板消息（前提是公众号那边已经手动创建了模板消息）
		','psize'=>$psize,'edit'=>false,'del_one'=>false,'delall'=>false,'total'=>$total,'data'=>'list','list'=>array(
			array('type'=>'string','title'=>'模板标识','name'=>'name'),
			array('type'=>'string','title'=>'模板id','name'=>'template_name'),
			array('type'=>'string','title'=>'小程序订阅id','name'=>'appsubtpl_name'),
			array('type'=>'string','title'=>'模板名称','name'=>'title'),
			array('type'=>'string','title'=>'关联插件','name'=>'plugintitle'),
			array('type'=>'string','title'=>'模板备注（搜索关键词）','name'=>'remark'),
			array('type'=>'string','title'=>'已创建消息ID','name'=>'template_id'),
		),'action'=>array(
			array('type'=>'post','op'=>'uptowechat','title'=>'同步创建消息','show'=>array('canup'=>1)),
			array('type'=>'modal','op'=>'demo','title'=>'模板示例'),
			array('type'=>'href','op'=>'addtpl','title'=>'自定义模板'),
			array('type'=>'modal','op'=>'sendtest','title'=>'测试发送','show'=>array('canup'=>1)),
		)),
		'search'=>array(
			array('type'=>'string','width'=>15,'title'=>'模板标识','name'=>'name'),
			array('name'=>'template_name','width'=>15,'title'=>'模板id','type'=>'string'),
			array('name'=>'title','width'=>15,'title'=>'模板标题','type'=>'string'),
		),
	);
	$return['htmls']=$htmls;
	$totalpage=ceil($total/$psize);
	$totalpage=intval($totalpage);
	$return['totalpage'] =$totalpage;
	$return['params']['page'] =$pindex;
	exi($return);
}
if($_RQ['op']=='mylist'){
	$params=array('uniacid'=>$_SESSION['uniacid']);
	if($_SESSION['plugin_name']){
		$params['plugin_name']=$_SESSION['plugin_name'];
	}
	if($_RQ['id']){	
		$name=pdo_getcolumn('core_tpl_template',array('id'=>$_RQ['id']),'name');
		$params['name']=$name;
		$return['params']['id'] =$_RQ['id'];
	}
	$pindex = max(1, intval($_RQ['page']));
	$psize = $_RQ['psize']?:10;
	$total='';
	$list=pdo_getslice('core_account_tpl_template',$params,array($pindex,$psize),$total,$fields,'','id desc');
	if($list){
		foreach($list as &$row){
			$row['plugintitle']=pdo_getcolumn('core_plugins',array('name'=>$row['plugin_name']),'title');
			$row['plugintitle']=$row['plugintitle']?:'系统';
			$row['iswxapp']=$row['wxapp_id']?1:0;
		}
	}
	$return['list']=$list;
	$htmls=array(
		'type'=>'list',
		'tabs'=>array(
			array('op'=>'list','title'=>'系统模板消息'),
			array('op'=>'mylist','title'=>'自定义模板消息'),
		),
		'list'=>array('psize'=>$psize,'tip'=>'【温馨提示】
		</br>1、<red>非特殊要求，非专业人士，请勿使用《自定义模板消息》</red>，正常默认模板就满足需求，也稳定有保障些；
		</br>2、[如果模板异常]：可以删除，然后让程序自动创建模板，或者自己手动创建模板！
		','edit'=>false,'delall'=>false,'total'=>$total,'data'=>'list','list'=>array(
			array('type'=>'string','title'=>'模板标识','name'=>'name'),
			array('type'=>'string','title'=>'模板id','name'=>'template_name'),
			array('type'=>'string','title'=>'模板名称','name'=>'title'),
			array('type'=>'string','title'=>'关联插件','name'=>'plugintitle'),
			array('type'=>'radio','title'=>'类型','name'=>'iswxapp','options'=>'types'),
			array('type'=>'string','title'=>'模板备注（搜索关键词）','name'=>'remark'),
		),'action'=>array(
			array('type'=>'href','op'=>'edittpl','title'=>'设计模板'),
		)),
		'search'=>array(
			array('name'=>'title','width'=>15,'title'=>'模板标题','type'=>'string')
		),
	);
	$return['types']=array('公众号','小程序');
	$return['htmls']=$htmls;
	$totalpage=ceil($total/$psize);
	$totalpage=intval($totalpage);
	$return['totalpage'] =$totalpage;
	$return['params']['page'] =$pindex;
	exi($return);
}
if($_RQ['op']=='demo'){
	$id=intval($_RQ['id']);
	if(!$id){
		exi('请先选择模板！','error');
	}
	$item=pdo_get('core_tpl_template',array('id'=>$id),array('title','demo','kefumsg'));
	$return['item']=$item;
	$return['htmls']=array(
			'type'=>'look',
			'desc'=>'模板详情',
			'look'=>array(
				array('type'=>'string','title'=>'模板标题','name'=>'title','help'=>''),
				array('type'=>'text','title'=>'微信原型','name'=>'demo','help'=>''),
				array('type'=>'text','title'=>'客服消息','name'=>'kefumsg','help'=>''),
				array('type'=>'text','title'=>'小程序订阅消息原型','name'=>'demoappsub','help'=>''),
			),
	);
	exi($return);
}
if($_RQ['op']=='mydemo'){
	$id=intval($_RQ['id']);
	if(!$id){
		exi('请先选择模板！','error');
	}
	$item=pdo_get('core_account_tpl_template',array('id'=>$id),array('title','demo','kefumsg'));
	$return['item']=$item;
	$return['htmls']=array(
			'type'=>'look',
			'desc'=>'模板详情',
			'look'=>array(
				array('type'=>'string','title'=>'模板标题','name'=>'title','help'=>''),
				array('type'=>'text','title'=>'微信原型','name'=>'demo','help'=>''),
				array('type'=>'text','title'=>'客服消息','name'=>'kefumsg','help'=>''),
			),
	);
	exi($return);
}
if($_RQ['op']=='addtpl'){
	if($_RQ['id']){	
		$item=pdo_get('core_tpl_template',array('id'=>$_RQ['id']));
		$item['coreid']=$item['id'];
		unset($item['id']);
	}else{
		exi('请选择系统模板!','error');
	}
	$isitem=pdo_get('core_account_tpl_template',array('name'=>$item['name'],'plugin_name'=>$item['plugin_name'],'uniacid'=>$_SESSION['uniacid']));
	if($isitem['id']){
		$item=$isitem;
	}
	$item['keywords']=$item['keywords']?json_decode($item['keywords'],true):array('keywords'=>array(array('title'=>'','value'=>'')));
	$item['typegroup']=$item['typegroup']?:1;
	if($item['plugin_name'] && $item['plugin_name']!='core'){
		$return['msgtpl_tags']=model($item['plugin_name'].'/model')->msgtpl_tags(array());
	}else{
		$return['msgtpl_tags']=$tags=array(
			array('title'=>'通用类','data'=>array(
				array('name'=>'商城名称'),
				array('name'=>'粉丝昵称'),
			))
		);
	}
	$return['messagetype']=array('1'=>'发送模板消息','2'=>'发送客服消息','3'=>'发送混合消息');
	$return['status']=array('1'=>'开启','0'=>'关闭');
	$result = model('core/msg_tpl')->get_wxtpl();
	$return['item']=$item;
	exi($return);
}
if($_RQ['op']=='edittpl'){
	if($_RQ['id']){	
		$item=pdo_get('core_account_tpl_template',array('id'=>$_RQ['id'],'uniacid'=>$_SESSION['uniacid']));
	}
	$item['keywords']=$item['keywords']?json_decode($item['keywords'],true):array('keywords'=>array(array('title'=>'','value'=>'')));
	$item['typegroup']=$item['typegroup']?:1;
	if($item['plugin_name'] && $item['plugin_name']!='core'){
		$return['msgtpl_tags']=model($item['plugin_name'].'/model')->msgtpl_tags(array());
	}else{
		$return['msgtpl_tags']=$tags=array(
			array('title'=>'通用类','data'=>array(
				array('name'=>'商城名称'),
				array('name'=>'粉丝昵称'),
			))
		);
	}
	$return['messagetype']=array('1'=>'发送模板消息','2'=>'发送客服消息','3'=>'发送混合消息');
	$return['status']=array('1'=>'开启','0'=>'关闭');
	$result = model('core/msg_tpl')->get_wxtpl();
	$return['item']=$item;
	exi($return);
}
if($_RQ['op']=='post'){
	$post=get_postdata();
	if(!$post['template_id']){
		exi('请输入模板消息ID！','error');
	}
	$data=array(
				'title'=>$post['title'],
				'template_id'=>$post['template_id'],
				'first'=>$post['first'],
				'firstcolor'=>$post['firstcolor'],
				'keywords'=>ijson_encode($post['keywords']),
				'footer'=>$post['footer'],
				'footercolor'=>$post['footercolor'],
				'remark'=>$post['remark'],
				'kefumsg'=>$post['kefumsg'],
	);
	if($post['id']){
		pdo_update('core_account_tpl_template',$data,array('id'=>$post['id'],'uniacid'=>$_SESSION['uniacid']));
		exi('保存自定义模版成功！','','goback');
	}else{
		$data['name']=$post['name'];
		$data['plugin_name']=$post['plugin_name']?:'core';
		$data['uniacid']=$_SESSION['uniacid'];
		$data['coreid']=intval($post['coreid']);
		pdo_insert('core_account_tpl_template',$data);
		exi('添加自定义模版成功！','','goback');
	}
}
if($_RQ['op']=='help'){
	$return['item']=array(
		'img1'=>'../core/resource/images/help/app_msg01.jpg',
		'img2'=>'../core/resource/images/help/app_msg02.jpg',
		'img3'=>'../core/resource/images/help/app_msg03.jpg',
		'img4'=>'../core/resource/images/help/app_msg04.jpg',
	);
	$return['htmls']=array(
			'type'=>'look',
			'desc'=>'创建模板ID教程',
			'tabs'=>array(
				array('op'=>'list','title'=>'返回消息列表'),
			),
			'look'=>array(
				array('type'=>'tip','title'=>'
					<red>【默认是会自动一键api创建模板的】：什么条件下会自动创建模板ID？</red>
					</br>1、如果公众号开启模板消息功能；
					</br>2、公众号类目符合默认的类目，比如商城程序的目前是默认的是《生活服务 > 百货/超市/便利店》;
					</br>3、商城下单，或者其他事情触发过该模板消息；
					</br>4、<red>上面条件都满足了，为什么没有自动创建模板</red>？进入《微信模板库》，找到对应的模板，点击《自定义模板》查看【模板消息ID】是否已经有内容了？如果没有，说明自动api创建模板失败了。
					</br>5、<red>《自定义模板》查看【模板消息ID】已经有内容了，但是不会推送模板消息</red>？有两种原因1：该用户没有关注公众号；2、模板消息ID跟公众号不匹配，或已失效（可以清空模板消息ID），让程序下次执行时再自动创建创建模板
				'),
				array('type'=>'help','title'=>'一、如何手动创建模板ID?','help'=>'
					</br>1：https://mp.weixin.qq.com/进入微信公众号--订阅消息，看看有没有自动创建模板；
					</br>2：移步本程序后台--》微信模板库--找到对应的《消息名称》比如【订单支付成功通知】：--点击《自定义模板》进入详情编辑页；
					</br>3：进入《自定义模板》编辑页面；查看：内容自定义，下面的几个字段内容；安装顺序，去微信公众号官方后台，创建一个内容匹配的模板消息，把【模板消息ID】复制过来！
					</br>4：拿两个（微信公众号官方后台已经创建的模板，本程序后台创建的模板）《自定义模板》进行内容对比，看看是不是一样的。
					</br>如果没有自动创建模板ID，就需要手动添加模板ID；
				'),
				array('type'=>'tip','title'=>'1、移步本程序后台--》消息设置--找到对应的《消息名称》比如【订单支付成功通知】：--点击《自定义模板》按钮'),
				array('type'=>'image','name'=>'img4','title'=>''),
				array('type'=>'tip','title'=>'2、https://mp.weixin.qq.com/进入微信公众号，开启模板消息；'),
				array('type'=>'tip','title'=>'3、公共模板库--找到跟步骤2《消息名称》类似的模板；'),
				array('type'=>'image','name'=>'img1','title'=>''),
				array('type'=>'image','name'=>'img2','title'=>''),
				array('type'=>'image','name'=>'img3','title'=>''),
				array('type'=>'tip','title'=>'4、把对应的参数（模板ID，选微信公众号，模板内容标识）填入后台；模板ID绑定成功！'),
				array('type'=>'image','name'=>'img4','title'=>''),
			),
	);
	exi($return);
}
if($_RQ['op']=='del'){
	$del=trim($_RQ['del'],';');
	if($del){
		$del=explode(';',$del);
	}else{
		$del=array();
	}
	if($_RQ['id']){
		$del[]=$_RQ['id'];
	}
	foreach($del as $id){
		$id=intval($id);
		if($id){
			pdo_delete('core_account_tpl_template',array('id'=>$id,'uniacid'=>$_SESSION['uniacid']));
		}
	}
	exi('删除成功！');
}
if($_RQ['op']=='uptowechat'){
	if(!$_RQ['id']){
		exi('请选择模板消息！','error');
	}
	$item=pdo_get('core_tpl_template',array('id'=>$_RQ['id']));
	$keyword_name_list=$item['keyword_name_list']?str_array($item['keyword_name_list'],'|'):array();
	if(!$keyword_name_list){
		exi('模板的关键词不存在，请更新插件！','error');
	}
	$template_id=cfc('account')->get_tpl_template_id($item['template_name'],$item['title'],1,$keyword_name_list,$item['name'],$item['plugin_name']);
	exi('更新成功！');
}
if($_RQ['op']=='sendtest'){
	if($_RQ['postdata']){
		$post=get_postdata();
		if(!$post['template_id']){
			exi('请先同步创建模板！','error');
		}
		if(!$post['mid']){
			exi('请先选择发送给会员的MID！','error');
		}
		cfc('account')->sendtwoNotice($post['mid'],$post['template_id'],$post['message'],'',$post['name'],$post['plugin_name'],'',true);
		exi('发送成功！','');
	}
	$id=intval($_RQ['id']);
	if(!$id){
		exi('请先选择模板！','error');
	}
	$item=pdo_get('core_tpl_template',array('id'=>$id));
	$item['template_id']=pdo_getcolumn('core_account_tpl_template',array('uniacid'=>$_SESSION['uniacid'],'template_name'=>$item['template_name'],'name'=>$item['name'],'plugin_name'=>$item['plugin_name']),'template_id');
	if(!$item['template_id']){
		//exi('请先同步创建模板！','error');
	}
	$keywords=json_decode($item['keywords'],true);
	$message=array();
	foreach($keywords as $i=>$kv){
		$message[]=array('title'=>$kv['title']?:$keywords[$i],'value'=>$kv['value'],"name" =>$kv['name']);
	}
	$item['message']=$message;
	$return['item']=$item;
	$return['htmls']=array(
			'type'=>'edit',
			'desc'=>'测试发送',
			'edit'=>array(
				array('type'=>'string','title'=>'发送给会员的MID','name'=>'mid','help'=>''),
				array('type'=>'array','name'=>'message','title'=>'发送内容','add_tip'=>'添加一个内容',
									'list'=>array(
										array('type'=>'string','name'=>'title','title'=>'名称'),
										array('type'=>'string','name'=>'value','title'=>'内容'),
										array('type'=>'string','name'=>'name','title'=>'标识'),										
									),
									'details'=>array(
										array('type'=>'string','name'=>'title','title'=>'名称'),
										array('type'=>'string','name'=>'value','title'=>'内容'),
										array('type'=>'string','name'=>'name','title'=>'标识'),	
									),
					'help'=>'[温馨提示]：同步创建模板后，微信官方后台https://mp.weixin.qq.com/；进入对应的模板消息，可以看到具体的【发送内容】，<red>可以对比一下里面的名称，标识等是否一致</red>，如果不同需上面修改才能发送消息！',
				),
			),
	);
	exi($return);
}
?>